//
//  required.swift
//  Documentation
//
//  Created by Toj on 6/26/23.
//

https://www.jianshu.com/p/9865fb8d095c
https://www.jianshu.com/p/2e811e76613d

import Foundation

// MARK: - required
1. required关键字只能用于修饰类初始化方法。
2. 当子类含有异于父类的初始化方法时（初始化方法参数类型和数量异于父类），子类必须要实现父类的required初始化方法，并且也要使用required修饰符而不是override
3. 当子类没有初始化方法时，可以不用实现父类的required初始化方法。

如果父类的初始化方法使用required修饰时，子类如果重写异于父类的初始化方法，那么必须实现required修饰的父类的方法。

required作用就是让子类实现父类指定的构造器

如果子类没有实现任何的init方法，那么默认调用父类的init方法

指定构造器在一个类中必须至少有一个, 而便利构造器的数量没有限制.
